public final class MyLastCLS {...}
→ MyLastCLS 클래스는 다른 클래스가 상속할 수 없음class Simple {
// 아래의 메소드는 다른 클래스에서 오버라이딩 할 수 없음
public final void func(int n) {...}
}
상수는 처음 한번만 초기화된다
클래스와 메소드의 경우에는 상속되지않으며 오버라이딩을 할수없다.
//기본적으로 함수선언-추상함수- 와 상수가 올수있다 // interface = 자손이 구현(implement)하라. interface Printable{ public final double PI = 3.14; public abstract void print(String doc); } class Printer implements Printable{ @Override public void print(String doc){ System.out.println(doc); } } public class InterfaceBasic { public static void main(String[] args) { Printer printer = new Printer(); printer.print("JKビッチの晒性活"); // Printable printable = new Printer(); } }
interface 는 다중상속이가능하다
그러나 함수가 내장되어있지 않아
interface 로 구현해야한다.
class Robot extends Machine implements Movable, Runnable
Robot 클래스는 Machine 클래스를 상속한다.
Robot 클래스는 Movable과 Runnable 인터페이스를 구현한다.
예시로, 하드웨어 드라이버가 interface를 활용하는 대표적인 프로그램이다
interface Printable { // MS가 정의하고 제공한 인터페이스 public void print(String doc); }
수많은 드라이버가 난립하자 MS가 표준을 정립했다
class SPrinterDriver implements Printable { @Override public void print(String doc) { System.out.println("From Samsung printer"); System.out.println(doc); } } class LPrinterDriver implements Printable { @Override public void print(String doc) { System.out.println("From LG printer"); System.out.println(doc); } }
위의 표준 인터페이스를 상속받는 두 제조사의 프린터드라이버
개인컴퓨터에 있는드라이버는 이를 실행하면...
public class PrinterDriver { public static void main(String[] args) { String myDoc = "This is a report about..."; // 삼성 프린터로 출력 Printable prn = new SPrinterDriver(); prn.print(myDoc); System.out.println(); // LG 프린터로 출력 prn = new LPrinterDriver(); prn.print(myDoc); } }
각 제조사별드라이버에서 구현화해야하지만
표준에 맞춰 작성된다